﻿using Taype.Trading.BTC.TradeHillAPIClient;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using Taype.Trading.BTC.TradeHillAPIClient.JSONObjects;
using System.Collections.Generic;

namespace TradeHillAPIClientTests
{
    
    
    /// <summary>
    ///This is a test class for v1Test and is intended
    ///to contain all v1Test Unit Tests
    ///</summary>
    [TestClass()]
    public class v1Test
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        /// <summary>
        ///A test for v1 Constructor
        ///</summary>
        [TestMethod()]
        public void v1ConstructorTest()
        {
            v1 target = new v1();
            Assert.Inconclusive("TODO: Implement code to verify target");
        }

        /// <summary>
        ///A test for BuyBTC
        ///</summary>
        [TestMethod()]
        public void BuyBTCTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            double price = 0F; // TODO: Initialize to an appropriate value
            double amount = 0F; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> actual;
            actual = target.BuyBTC(currency, name, pass, price, amount);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for CancelOrder
        ///</summary>
        [TestMethod()]
        public void CancelOrderTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            string oid = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> actual;
            actual = target.CancelOrder(currency, name, pass, oid);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for GetBalance
        ///</summary>
        [TestMethod()]
        public void GetBalanceTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillBalanceInfo> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillBalanceInfo> actual;
            actual = target.GetBalance(currency, name, pass);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for GetDeposits
        ///</summary>
        [TestMethod()]
        public void GetDepositsTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillDeposit> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillDeposit> actual;
            actual = target.GetDeposits(currency, name, pass);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for GetOrder
        ///</summary>
        [TestMethod()]
        public void GetOrderTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> actual;
            actual = target.GetOrder(currency, name, pass);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for GetProfile
        ///</summary>
        [TestMethod()]
        public void GetProfileTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillProfileInfo> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillProfileInfo> actual;
            actual = target.GetProfile(currency, name, pass);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for GetWithdrawals
        ///</summary>
        [TestMethod()]
        public void GetWithdrawalsTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillWithdrawal> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillWithdrawal> actual;
            actual = target.GetWithdrawals(currency, name, pass);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for OrderBook
        ///</summary>
        [TestMethod()]
        public void OrderBookTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            List<TradeHillOrderBookEntry> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillOrderBookEntry> actual;
            actual = target.OrderBook(currency);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SellBTC
        ///</summary>
        [TestMethod()]
        public void SellBTCTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            double price = 0F; // TODO: Initialize to an appropriate value
            double amount = 0F; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillOrder> actual;
            actual = target.SellBTC(currency, name, pass, price, amount);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SubmitDepositRequest
        ///</summary>
        [TestMethod()]
        public void SubmitDepositRequestTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            TradeHillDepositType method = new TradeHillDepositType(); // TODO: Initialize to an appropriate value
            double amount = 0F; // TODO: Initialize to an appropriate value
            string box_a = string.Empty; // TODO: Initialize to an appropriate value
            string box_b = string.Empty; // TODO: Initialize to an appropriate value
            string box_c = string.Empty; // TODO: Initialize to an appropriate value
            string box_d = string.Empty; // TODO: Initialize to an appropriate value
            string box_e = string.Empty; // TODO: Initialize to an appropriate value
            string box_f = string.Empty; // TODO: Initialize to an appropriate value
            string box_g = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillDeposit> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillDeposit> actual;
            actual = target.SubmitDepositRequest(currency, name, pass, method, amount, box_a, box_b, box_c, box_d, box_e, box_f, box_g);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SubmitWithdrawalRequest
        ///</summary>
        [TestMethod()]
        public void SubmitWithdrawalRequestTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            string name = string.Empty; // TODO: Initialize to an appropriate value
            string pass = string.Empty; // TODO: Initialize to an appropriate value
            TradeHillWithdrawalType method = new TradeHillWithdrawalType(); // TODO: Initialize to an appropriate value
            double amount = 0F; // TODO: Initialize to an appropriate value
            string box_a = string.Empty; // TODO: Initialize to an appropriate value
            string box_b = string.Empty; // TODO: Initialize to an appropriate value
            string box_c = string.Empty; // TODO: Initialize to an appropriate value
            string box_d = string.Empty; // TODO: Initialize to an appropriate value
            string box_e = string.Empty; // TODO: Initialize to an appropriate value
            string box_f = string.Empty; // TODO: Initialize to an appropriate value
            string box_g = string.Empty; // TODO: Initialize to an appropriate value
            List<TradeHillWithdrawal> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillWithdrawal> actual;
            actual = target.SubmitWithdrawalRequest(currency, name, pass, method, amount, box_a, box_b, box_c, box_d, box_e, box_f, box_g);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Ticker
        ///</summary>
        [TestMethod()]
        public void TickerTest()
        {
            v1 target = new v1();
            TradeHillCurrencySymbol currency = TradeHillCurrencySymbol.USD;
            List<TradeHillTickerItem> expected = null;
            List<TradeHillTickerItem> actual;
            actual = target.Ticker(currency);
            Assert.AreEqual(expected, actual);
        }

        /// <summary>
        ///A test for Trades
        ///</summary>
        [TestMethod()]
        public void TradesTest()
        {
            v1 target = new v1(); // TODO: Initialize to an appropriate value
            TradeHillCurrencySymbol currency = new TradeHillCurrencySymbol(); // TODO: Initialize to an appropriate value
            List<TradeHillTrade> expected = null; // TODO: Initialize to an appropriate value
            List<TradeHillTrade> actual;
            actual = target.Trades(currency);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
    }
}
